package com.utn.disenio.entrega2;

import java.util.ArrayList;



public abstract class Usuario {
	
	/* Datos del Usuario */
	protected String nombre;
	protected String apellido;
	protected String dni;
	
	
	protected SistemaAterrizarPuntoCom sistema;
	
	protected ArrayList<Asiento> historialDeBusquedas; /* <---- Array de asientos */ 
	
	
	public Usuario(String nombre, String apellido, String dni)
	{
		this.nombre = nombre;
		this.apellido = apellido;
		this.dni = dni;
		this.sistema = SistemaAterrizarPuntoCom.getInstance();
		this.historialDeBusquedas = new ArrayList<Asiento>();
	}
	
	public ArrayList<Asiento> buscarAsientosDisponibles(String origen, String destino, String salida, String horaSalida, String llegada, String horaLlegada) throws Exception
	{
		ArrayList<Asiento> busqueda = this.sistema.buscarAsientos(origen, destino, salida, horaSalida, llegada, horaLlegada, this);
		
		this.historialDeBusquedas.addAll(busqueda);
		
		return busqueda;
	}
	
	public void comprarAsiento(Asiento unAsiento) throws Exception{
			sistema.comprar(unAsiento, this);
			
	}

	public abstract Boolean puedeListar(Asiento unAsiento);
	public abstract float impuestoAdicional();
	
}
